package com.xiong.wuliao;

import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.lzy.okhttputils.OkHttpUtils;
import com.lzy.okhttputils.callback.StringCallback;
import com.squareup.picasso.Picasso;
import com.xiong.wuliao.cn.sharesdk.onekeyshare.OnekeyShare;
import com.xiong.wuliao.entity.Special;
import com.xiong.wuliao.util.SpecialJSON;

import org.json.JSONException;
import org.json.JSONObject;

import java.util.ArrayList;
import java.util.List;

import cn.sharesdk.framework.ShareSDK;
import okhttp3.Call;
import okhttp3.Response;

/**
 * 从Home和吐槽少女等点击去后的专题页面
 */
public class SpecialActivity extends AppCompatActivity implements View.OnClickListener {
    // 可拉伸标题栏
    private Toolbar myToolBar;
    // 详情页面的标题
    private TextView myTextViewTitle;
    // 详情页面顶部的图片
    private ImageView mySpecialImageView;
    // 放置网页
    private WebView myWebView;
    // 点击页面传过来的地址末尾id
    private String lastId;
    // 保存服务器的专题详情数据
    private List<Special> specialList = new ArrayList<>();
    // 专题详情页面地址
    public String AllDetails = "http://api.wuliaoribao.com/v1/posts/"; //http://api.wuliaoribao.com/v1/posts/4681

    private ImageView myImageViewSpecialLike; // 喜欢的可点击图片
    private TextView TextViewSpecialLike; // 点赞数
    private ImageView myImageViewSpecialShare; // 分享的可点击图片
    private TextView myTextViewSpecialShare; // 分享数
    private ImageView myImageViewSpecialComment; // 评论的可点击图片
    private TextView myTextViewSpecialComment; // 评论数

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_special);
        // 第三方分享初始化ShareSDK
        ShareSDK.initSDK(SpecialActivity.this, "key");

        myToolBar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(myToolBar);

        myToolBar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Log.e("=======", "点击了返回");
                SpecialActivity.this.finish();
            }
        });

        init();
    }

    /**
     * 设置TooBar
     */
    private void setToolBar() {

    }

    /**
     *
     */
    private void init() {
        findView();
        setToolBar();  // 设置标题栏
        getLastId();
        initData();
        setListener();
    }

    /**
     * 设置监听事件
     */
    private void setListener() {
        setSupportActionBar(myToolBar);
        myImageViewSpecialShare.setOnClickListener(this);
    }

    /**
     * 初始化数据
     */
    private void initData() {
        getSpecialServerData();
    }

    /**
     * 获取点击页面传过来的ID
     */
    private void getLastId() {
        Intent intent = getIntent();
        String str = intent.getStringExtra("lastId");
        lastId = str;

    }

    /**
     * 设置网页
     */
    private void setWebView() {
        WebSettings setting = myWebView.getSettings();
        setting.setAppCacheEnabled(true);
        setting.setJavaScriptEnabled(true);
        setting.setSupportZoom(true);

        // 获取网页地址
        myWebView.loadUrl(specialList.get(0).getContent_url());

        // 显示网页
        myWebView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return true;
            }
        });

        // 加载网页
        myWebView.setWebChromeClient(new WebChromeClient() {
            @Override
            public void onProgressChanged(WebView view, int newProgress) {
                super.onProgressChanged(view, newProgress);
            }
        });
    }

    /**
     * 设置专题页面的顶部
     */
    private void setTop() {
        Special special = new Special();
        special = specialList.get(0);
        // 设置顶部标题
        myTextViewTitle.setText(special.getTitle());
        // 设置顶部图片
        Picasso.with(SpecialActivity.this).load(special.getCover_image_url()).into(mySpecialImageView);
    }

    /**
     * 保存专题详情的数据
     */
    private void getSpecialServerData() {
        String string = AllDetails + lastId;
        OkHttpUtils.get(string).execute(new StringCallback() {
            @Override
            public void onSuccess(String s, Call call, Response response) {
                JSONObject jsonObject = null;
                try {
                    jsonObject = new JSONObject(s.trim());
                    String result = jsonObject.getString("message");
                    if (result.equals("OK")) {

                        specialList.addAll(SpecialJSON.saveSpecialData(s.trim()));
                        handler.sendEmptyMessage(100);
                    } else {
                        Toast.makeText(SpecialActivity.this, "数据请求失败", Toast.LENGTH_SHORT).show();
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * 因为网络请求是个异步任务，所以要在异步任务执行完之后才开始执行
     */
    Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            setTop();
            setWebView();
        }
    };

    /**
     * 初始化控件
     */
    private void findView() {
        mySpecialImageView = (ImageView) findViewById(R.id.mySpecialImageView);
        myTextViewTitle = (TextView) findViewById(R.id.myTextViewTitleSpecial);
        myWebView = (WebView) findViewById(R.id.myWebViewSpecial);

        myImageViewSpecialLike = (ImageView) findViewById(R.id.myImageViewSpecialLike); // 喜欢的可点击图片
        TextViewSpecialLike = (TextView) findViewById(R.id.myTextViewSpecialLike); // 点赞数
        myImageViewSpecialShare = (ImageView) findViewById(R.id.myImageViewSpecialShare); // 分享的可点击图片
        myTextViewSpecialShare = (TextView) findViewById(R.id.myTextViewSpecialShare); // 分享数
        myImageViewSpecialComment = (ImageView) findViewById(R.id.myImageViewSpecialComment); // 评论的可点击图片
        myTextViewSpecialComment = (TextView) findViewById(R.id.myTextViewSpecialComment); // 评论数
    }

    /**
     * 分享等普通点击事件的处理
     *
     * @param v
     */
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.myImageViewSpecialShare: // 点击了分享的图片
                showShare();
                break;
        }
    }

    /**
     * 第三方分享的方法
     */
    private void showShare() {
        ShareSDK.initSDK(this);
        OnekeyShare oks = new OnekeyShare();
        //关闭sso授权
        oks.disableSSOWhenAuthorize();

        // title标题，印象笔记、邮箱、信息、微信、人人网和QQ空间等使用
        oks.setTitle("标题");
        // titleUrl是标题的网络链接，QQ和QQ空间等使用
        oks.setTitleUrl("http://sharesdk.cn");
        // text是分享文本，所有平台都需要这个字段
        oks.setText("我是分享文本");
        // imagePath是图片的本地路径，Linked-In以外的平台都支持此参数
        //oks.setImagePath("/sdcard/test.jpg");//确保SDcard下面存在此张图片
        // url仅在微信（包括好友和朋友圈）中使用
        oks.setUrl("http://sharesdk.cn");
        // comment是我对这条分享的评论，仅在人人网和QQ空间使用
        oks.setComment("我是测试评论文本");
        // site是分享此内容的网站名称，仅在QQ空间使用
        oks.setSite(getString(R.string.app_name));
        // siteUrl是分享此内容的网站地址，仅在QQ空间使用
        oks.setSiteUrl("http://sharesdk.cn");

        // 启动分享GUI
        oks.show(this);

    }
}
